package pri.zxx.excelgenerate.dataentity.module;

import pri.zxx.excelgenerate.dataentity.entity.*;
import pri.zxx.excelgenerate.dataentity.tabledata.TableDefinition;
import pri.zxx.excelgenerate.excelhanler.ExcelUtil;
import pri.zxx.excelgenerate.excelhanler.RowHeightConstant;
import pri.zxx.excelgenerate.excelhanler.excelentity.CustomCell;
import pri.zxx.excelgenerate.excelhanler.excelentity.CustomRow;

import java.lang.reflect.Field;
import java.util.ArrayList;
import java.util.List;

public interface ModuleCreator {

    List<ModuleMetaInfo> creator(CreatRequest creatRequest);

    ModuleInfoEnum moduleInfo();

    /**
     * 组装表头元数据
     */
    TableDefinition moduleMetaInfoHandle(TableDefinition tableDefinition, CreatRequest creatRequest);


    default Class<? extends ExcelData> getByType(PredictionTypeEnum predictionTypeEnum) {
        return null;
    }

    /**
     * 组装表内容数据
     */
    TableDefinition dataHandle(TableDefinition tableDefinition, CreatRequest creatRequest);

    /**
     * 单对象数据加载，
     */
    TableDefinition loadObjectData(TableDefinition tableDefinition, CreatRequest creatRequest, ExcelData comInfo, boolean tw);
}
